﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;

namespace _3.Datos.Miembro
{
    public class MiembroBD
    {
        public DataSet ConsultarMiembrosDs(SqlCommand comando)
        {
            try
            {
                string sp = "usp_MiembrosConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDataAdapter da = new SqlDataAdapter(comando);
                var ds = new DataSet();
                da.Fill(ds);

                return ds;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }


        public void GuardarMiembro(SqlCommand comando, _4.Modelado.Miembros.Miembro obj)
        {
            try
            {
                string sp = "usp_MiembroGuardar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PkMiembro", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@MiemNombre", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MiemPrimerApellido", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MiemSegundoApellido", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MiemDireccion", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MiemCorreo", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MiemNacimiento", SqlDbType.Date));
                comando.Parameters.Add(new SqlParameter("@FK_EstadoCivil_Miemb", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@MiemLecheEspiritual", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@MiemEscuelaAguila", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@MiemTieneHijos", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@MiemCantHijos", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@MiemTelefono", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MiemEstado", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@MiemSexo", SqlDbType.Char));



                comando.Parameters[0].Value = obj.iPKMiembro;
                comando.Parameters[1].Value = obj.sMiemNombre;
                comando.Parameters[2].Value = obj.sMiemPrimerApellido;
                comando.Parameters[3].Value = obj.sMiemSegundoApellido;
                comando.Parameters[4].Value = obj.sMiemDireccion;
                comando.Parameters[5].Value = obj.sMiemCorreo;
                comando.Parameters[6].Value = obj.dMiemNacimiento;
                comando.Parameters[7].Value = obj.iFKEstadoCivil;
                comando.Parameters[8].Value = obj.bMiemLecheEspiritual;
                comando.Parameters[9].Value = obj.bMiemEscuelaAguila;
                comando.Parameters[10].Value = obj.bMiemTieneHijos;
                comando.Parameters[11].Value = obj.iMiemCantHijos;
                comando.Parameters[12].Value = obj.sMiemTelefono;
                comando.Parameters[13].Value = obj.bMiemEstado;
                comando.Parameters[14].Value = obj.cMiemSexo;


                comando.ExecuteNonQuery();

            }
            catch (Exception exc)
            {

                throw exc;
            }
        }


        public List<_4.Modelado.Miembros.Miembro> ConsultarMiembros(SqlCommand comando)
        {
            try
            {
                string sp = "usp_MiembrosConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                var ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                var lista = new List<_4.Modelado.Miembros.Miembro>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var obj = new _4.Modelado.Miembros.Miembro();
                    obj.iPKMiembro = Convert.ToInt32(dt.Rows[i]["PkMiembro"]);
                    obj.snombreCompleto = (dt.Rows[i]["nombreCompleto"]).ToString();
                    obj.sMiemNombre = (dt.Rows[i]["MiemNombre"]).ToString();
                    obj.sMiemPrimerApellido = dt.Rows[i]["MiemPrimerApellido"].ToString();
                    obj.sMiemSegundoApellido = dt.Rows[i]["MiemSegundoApellido"].ToString();
                    obj.sMiemDireccion = dt.Rows[i]["MiemDireccion"].ToString();
                    obj.sMiemCorreo = dt.Rows[i]["MiemCorreo"].ToString();
                    obj.dMiemNacimiento = Convert.ToDateTime(dt.Rows[i]["MiemNacimiento"]);
                    obj.iFKEstadoCivil = Convert.ToInt32(dt.Rows[i]["FK_EstadoCivil_Miemb"]);
                    obj.sMiemEstadoCivil = dt.Rows[i]["EstadoCivilDespcripcion"].ToString();
                    obj.bMiemLecheEspiritual = Convert.ToBoolean(dt.Rows[i]["MiemLecheEspiritual"]);
                    obj.bMiemEscuelaAguila = Convert.ToBoolean(dt.Rows[i]["MiemEscuelaAguila"]);
                    obj.bMiemTieneHijos = Convert.ToBoolean(dt.Rows[i]["MiemTieneHijos"]);
                    obj.iMiemCantHijos = Convert.ToInt32(dt.Rows[i]["MiemCantHijos"]);
                    obj.sMiemTelefono = dt.Rows[i]["MiemTelefono"].ToString();
                    obj.bMiemEstado = Convert.ToBoolean(dt.Rows[i]["MiemEstado"]);
                    obj.cMiemSexo = Convert.ToChar(dt.Rows[i]["MiemSexo"]);
                    obj.sMiemEstadoCivil = dt.Rows[i]["EstadoCivilDespcripcion"].ToString();


                    lista.Add(obj);
                }
                return lista;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

        public List<_4.Modelado.Miembros.Miembro> ConsultarMiembro(SqlCommand comando, _4.Modelado.Miembros.Miembro obp)
        {
            try
            {
                string sp = "usp_MiembroConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@nombre", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@codigo", SqlDbType.Int));
                comando.Parameters[0].Value = obp.sNombre;
                comando.Parameters[1].Value = obp.iCodigo;


                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                var ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                var lista = new List<_4.Modelado.Miembros.Miembro>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var obj = new _4.Modelado.Miembros.Miembro();
                    obj.iPKMiembro = Convert.ToInt32(dt.Rows[i]["PkMiembro"]);
                    obj.snombreCompleto = (dt.Rows[i]["nombreCompleto"]).ToString();
                    obj.sMiemNombre = (dt.Rows[i]["MiemNombre"]).ToString();
                    obj.sMiemPrimerApellido = dt.Rows[i]["MiemPrimerApellido"].ToString();
                    obj.sMiemSegundoApellido = dt.Rows[i]["MiemSegundoApellido"].ToString();
                    obj.sMiemDireccion = dt.Rows[i]["MiemDireccion"].ToString();
                    obj.sMiemCorreo = dt.Rows[i]["MiemCorreo"].ToString();
                    obj.dMiemNacimiento = Convert.ToDateTime(dt.Rows[i]["MiemNacimiento"]);
                    obj.iFKEstadoCivil =Convert.ToInt32( dt.Rows[i]["FK_EstadoCivil_Miemb"]);
                    obj.sMiemEstadoCivil = dt.Rows[i]["EstadoCivilDespcripcion"].ToString();
                    obj.bMiemLecheEspiritual = Convert.ToBoolean(dt.Rows[i]["MiemLecheEspiritual"]);
                    obj.bMiemEscuelaAguila = Convert.ToBoolean(dt.Rows[i]["MiemEscuelaAguila"]);
                    obj.bMiemTieneHijos = Convert.ToBoolean(dt.Rows[i]["MiemTieneHijos"]);
                    obj.iMiemCantHijos = Convert.ToInt32(dt.Rows[i]["MiemCantHijos"]);
                    obj.sMiemTelefono = dt.Rows[i]["MiemTelefono"].ToString();
                    obj.bMiemEstado = Convert.ToBoolean(dt.Rows[i]["MiemEstado"]);
                    obj.cMiemSexo = Convert.ToChar(dt.Rows[i]["MiemSexo"]);


                    lista.Add(obj);
                }
                return lista;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

        public void EliminarMiembro(SqlCommand comando, _4.Modelado.Miembros.Miembro obj)
        {
            try
            {
                string sp = "usp_MiembroEliminar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PKMiembro", SqlDbType.Int));
                comando.Parameters[0].Value = obj.iPKMiembro;


                comando.ExecuteNonQuery();

            }
            catch (Exception e)
            {

                throw e;
            }
        }

        public DataTable LlenarComboEstadoCivil(SqlCommand comando)
        {
            try
            {
                string sp = "usp_EstadoCivilConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                var ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];


                return ds.Tables[0];
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

    }
}
